/**
 * Created by Eoly on 2017/2/16.
 * Call http://palerock.cn
 */
var infoPage = angular.module('infoPage', ['ngRoute']);



/**
 * 用户信息页面
 */
infoPage.controller('info', function ($scope, $http) {
    $scope.suiMobileInit = function (isNotChangeContent) {
        app.suiInit(isNotChangeContent);
        app.adaptPhone();
    };

    //声明用户信息
    $scope.userInfo = {};

    $scope.isEdit = false;

    //获得用户信息
    $scope.getInfo = function () {

        var token = app.getUserToken();

        if(!token){
            return;
        }

        if (token) {
            $http({
                url:net + '/user/show-user-info',
                method:'get',
                headers: {'Authorization': 'Bearer ' + token}
            }).then(function (res) {
                console.log(res);
                if (!res.data.error) {

                    //将获取的用户信息绑定给userInfo
                    $scope.userInfo = res.data.data;

                    //因为userAvatar是只有图片文件名
                    //所以需要在前面加上服务器储存图片的地址，并自定义一个userAvatarAddress来储存
                    //地址：服务器路径+"/resources/img/"
                    $scope.userInfo.userAvatarAddress = net + "/resources/img/" + res.data.data.userAvatar;

                    //从服务器获得的性别数据不可以直接展示所以自定一个userSexWord来储存性别
                    //0:男，1:女
                    $scope.userInfo.userSexWord = $scope.userInfo.userSex == 0 ? "男" : "女";

                    setTimeout(function () {
                        $scope.$watch('userInfo',function () {
                            $scope.isEdit = true;
                            console.log($scope.userInfo);
                        },true);
                    },500);

                } else {
                    $.alert("错误代码:"+res.data.error+","+res.data.mes)
                }
            }, function () {
                $.alert('网络或设置错误');
            })
        }
    };

    //编辑用户信息
    $scope.editInfo = function () {

        var token = app.getUserToken();

        if(!token){
            return;
        }

        if (token) {

            //处理json对象
            //因为更改的json属性是我们自定义的userSexWord，在修改时我们需要将其转化为0或1
            //0:男，1:女
            $scope.userInfo.userSex = $scope.userInfo.userSexWord == "男" ? 0 : 1;

            console.log($scope.userInfo);

            //发送POST请求
            $http({
                method:'post',
                url:net + '/user/edit-user-info',
                data:$scope.userInfo,
                headers: {'Authorization': 'Bearer ' + token}
            }).then(function (res) {
                console.log(res);
                if (!res.data.error) {

                    $.alert(res.data.mes,function () {
                        app.backLastPosition();
                    });

                } else {
                    $.alert('错误代码：' + res.data.error + "," + res.data.mes);
                }
            }, function () {
                $.alert('网络或设置错误');
            })
        }
    };

    //单次提交图片的函数
    //参数为传入的一个文件类型input
    $scope.img_upload = function (files) {

        if (!files || !files[0]) {
            return;
        }

        var token = app.getUserToken();

        if(!token){
            return;
        }

        //FileReader用来读取本地文件
        var reader = new FileReader();

        //实例化图片用于被加载在画布上
        var img = new Image();

        //获取预览画布
        var canvas = document.createElement('canvas');
        canvas.width = 100;
        canvas.height = 100;
        var ctx = canvas.getContext("2d");

        //当图片加载完毕执行动作
        reader.onload = function (e) {

            // 通过 reader.result 来访问生成的 DataURL
            img.src = reader.result;

            //获取图片的高宽
            var width = img.width;
            var height = img.height;

            //获取需要使用的正方形图片区域
            var real_width = width > height ? height : width;
            var real_height = width > height ? height : width;

            //定位使图片居中
            var img_x = (width - real_width) / 2;
            var img_y = (height - real_height) / 2;

            //清除原来画布内容
            ctx.clearRect(0, 0, 100, 100);

            //在画布上渲染头像预览
            ctx.drawImage(img, img_x, img_y, real_width, real_height, 0, 0, 100, 100);

            //将画布渲染的图像转换为base64字符串储存在data中
            var data = canvas.toDataURL();

            //发送POST请求
            $http({

                method: 'post',
                url: net + "/user/image-upload",
                data: data,
                headers: {'Authorization': 'Bearer ' + token}

            }).then(function (res) {

                if (!res.data.error) {

                    console.log(res);
                    $scope.userInfo.userAvatarAddress = canvas.toDataURL();
                    $.alert(res.data.mes);

                    //将获得的图片名暂时保存
                    $scope.userInfo.userAvatar = res.data.data;

                } else {

                    $.alert('错误代码：' + res.data.error + "," + res.data.mes);
                }


            }, function () {

                $.alert('网络或设置错误');

            })
        };

        //加载选中的图片
        reader.readAsDataURL(files[0]);
    };

});

/**
 * 路由
 */
infoPage.config(function ($routeProvider) {
    $routeProvider.when('/show', {
        templateUrl: 'html/info-show-content.html',
        controller: 'info'
    }).when('/edit', {
        templateUrl: 'html/info-edit-content.html',
        controller: 'info'
    }).otherwise({
        redirectTo: '/show'
    });
});